package com.asnike.display{
	
	public class ASGraphicsArg{
		
		static public const RECT:String = 'rect';
		static public const ROUND_RECT:String = 'roundRect';
		static public const CIRCLE:String = 'circle';
		static internal const CUSTOM_LINE:String = 'customLine';
		static internal const LINE_NONE:int = -1;
		
		internal var colorFill:uint;
		internal var width:Number;
		internal var height:Number;
		internal var type:String;
		internal var radius:Number;
		internal var target:*;
		internal var thickness:int = LINE_NONE;
		internal var colorLine:uint;
		internal var round:Number;
		internal var data:Vector.<Number>;
		internal var command:Vector.<int>;
		
		public function ASGraphicsArg(){
			
		}
		public function fillColor( $color:uint ):ASGraphicsArg{
			colorFill = $color;
			
			return this;
		}
		public function rect( $width:Number, $height:Number ):ASGraphicsArg{
			width = $width;
			height = $height;
			type = RECT;
			
			return this;
		}
		public function roundRect( $width:Number, $height:Number, $round:Number ):ASGraphicsArg{
			width = $width;
			height = $height;
			round = $round;
			type = ROUND_RECT;
			
			return this;
		}
		public function circle( $radius:Number ):ASGraphicsArg{
			radius = $radius;
			type = CIRCLE;
			
			return this;
		}
		public function setTarget( $target:* ):ASGraphicsArg{
			target = $target;
			return this;
		}
		public function lineColor( $thickness:int, $color:uint ):ASGraphicsArg{
			thickness = $thickness;
			colorLine = $color;
			return this;
		}
		public function line( $command:Array, $data:Array ):ASGraphicsArg{
			command = Vector.<int>( $command );
			data = Vector.<Number>( $data );
			type = CUSTOM_LINE;
			return this;
		}
//테스트용------------------------------------------------------------------------------------------------------------------------------------------------------------------------		
		public function getFillColor():uint{
			return colorFill;
		}
		public function getWidth():Number{
			return width;
		}
		public function getHeight():Number{
			return height;
		}
		public function getType():String{
			return type;
		}
		public function getRadius():Number{
			return radius;
		}
		public function getTarget():*{
			return target;
		}
		public function getLineThickness():int{
			return thickness;
		}
		public function getLineColor():uint{
			return colorLine;
		}
		public function getRound():uint{
			return round;
		}
		public function getCommand():Vector.<int>{
			return command;
		}
		public function getData():Vector.<Number>{
			return data;
		}
	}
}